Placeholder Text এবং Data Binding

Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড) Templates এবং Document Generation |
148
148

Apache POI লাইব্রেরি ব্যবহৃত হয় Word ডকুমেন্টের কনটেন্ট ম্যানিপুলেশনের জন্য। এক্ষেত্রে Placeholder Text এবং Data Binding দুটি গুরুত্বপূর্ণ ফিচার। এই ফিচারগুলোকে ব্যবহার করে আপনি ডকুমেন্টে ডাইনামিক ডেটা সন্নিবেশ করতে পারেন এবং placeholder টেক্সটকে data দিয়ে প্রতিস্থাপন করতে পারেন। নিচে Placeholder Text এবং Data Binding ব্যবহারের বিস্তারিত আলোচনা করা হলো।


১. Placeholder Text কী?

Placeholder Text হল এমন একটি টেক্সট যা একটি নির্দিষ্ট স্থানে temporarily (অস্থায়ীভাবে) থাকে, যা পরে ডাইনামিক ডেটা বা ব্যবহারকারীর ইনপুট দিয়ে প্রতিস্থাপন করা হয়। এটি সাধারণত ফর্ম বা টেমপ্লেট ডকুমেন্টে ব্যবহৃত হয়, যেখানে নির্দিষ্ট ফিল্ডগুলো ব্যবহারকারীর ইনপুট বা অন্যান্য ডেটা দ্বারা পূর্ণ হয়।

এটি "{{placeholder}}" বা "[placeholder]" ইত্যাদি ফর্ম্যাটে থাকতে পারে।


২. Placeholder Text যোগ করা

Apache POI ব্যবহার করে Word ডকুমেন্টে Placeholder Text যোগ করা একটি সাধারণ কাজ। আপনি টেক্সট run বা paragraph-এ কিছু placeholder টেক্সট যোগ করতে পারেন, যা পরে ডাইনামিক ডেটার মাধ্যমে প্রতিস্থাপন করা হবে।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class AddPlaceholderText {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // Paragraph তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();
        paragraph.setAlignment(ParagraphAlignment.LEFT);

        // Placeholder text যোগ করা
        XWPFRun run = paragraph.createRun();
        run.setText("Hello, {{name}}! Welcome to the document.");

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("document_with_placeholder.docx")) {
            document.write(out);
        }
    }
}

এখানে, {{name}} placeholder হিসেবে রাখা হয়েছে, যা পরবর্তী সময়ে Data Binding ব্যবহার করে প্রতিস্থাপন করা যাবে।


৩. Data Binding কী?

Data Binding হল একটি প্রক্রিয়া যেখানে static বা hardcoded ডেটার পরিবর্তে ডাইনামিক ডেটা placeholder গুলোর স্থানে অটোমেটিকভাবে প্রতিস্থাপন হয়। এটি সাধারণত template-driven ডকুমেন্ট তৈরি করতে ব্যবহৃত হয়, যেমন পত্রিকা, চুক্তিপত্র, রিপোর্ট ইত্যাদি যেখানে কিছু অংশ ব্যবহারকারীর বা ডেটাবেস থেকে আসা তথ্য দিয়ে পূর্ণ করা হয়।


৪. Data Binding Example

এখন, আপনি {{name}} placeholder কে একটি ডাইনামিক ভ্যালু দিয়ে প্রতিস্থাপন করতে পারেন। উদাহরণস্বরূপ, যদি আপনার কাছে একটি ডাটাবেস বা ব্যবহারকারীর ইনপুট থাকে, তবে আপনি সেই তথ্য দিয়ে placeholder প্রতিস্থাপন করতে পারেন।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ReplacePlaceholderWithData {
    public static void main(String[] args) throws IOException {
        // ডকুমেন্ট লোড করা
        XWPFDocument document = new XWPFDocument(new FileInputStream("document_with_placeholder.docx"));

        // ডকুমেন্টে সব Paragraph গুলি পড়া
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            for (XWPFRun run : paragraph.getRuns()) {
                String text = run.getText(0);
                
                // Placeholder text প্রতিস্থাপন
                if (text != null && text.contains("{{name}}")) {
                    text = text.replace("{{name}}", "John Doe"); // {{name}} কে "John Doe" দিয়ে প্রতিস্থাপন
                    run.setText(text, 0); // নতুন টেক্সট সেট করা
                }
            }
        }

        // পরিবর্তিত ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("document_with_data.docx")) {
            document.write(out);
        }
    }
}

এখানে, {{name}} placeholder-এ "John Doe" নাম প্রতিস্থাপন করা হয়েছে। এটি data binding এর একটি উদাহরণ, যেখানে ডাইনামিক ডেটা দিয়ে placeholder গুলি প্রতিস্থাপন করা হয়েছে।


৫. Complex Data Binding

কখনও কখনও আপনার ডকুমেন্টে একাধিক placeholder থাকতে পারে বা অনেক ধরণের ডেটা প্রয়োজন হতে পারে। এতে আপনি বিভিন্ন Dynamic Values একত্রিত করে ডকুমেন্টে একাধিক জায়গায় প্রতিস্থাপন করতে পারেন। উদাহরণস্বরূপ:

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ComplexDataBinding {
    public static void main(String[] args) throws IOException {
        // ডকুমেন্ট লোড করা
        XWPFDocument document = new XWPFDocument(new FileInputStream("document_with_placeholder.docx"));

        // ডাইনামিক ডেটা
        String name = "John Doe";
        String date = "2024-12-17";
        String address = "123 Main Street";

        // Paragraph গুলিতে placeholder গুলি প্রতিস্থাপন
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            for (XWPFRun run : paragraph.getRuns()) {
                String text = run.getText(0);

                if (text != null) {
                    // {{name}} প্রতিস্থাপন
                    if (text.contains("{{name}}")) {
                        text = text.replace("{{name}}", name);
                    }

                    // {{date}} প্রতিস্থাপন
                    if (text.contains("{{date}}")) {
                        text = text.replace("{{date}}", date);
                    }

                    // {{address}} প্রতিস্থাপন
                    if (text.contains("{{address}}")) {
                        text = text.replace("{{address}}", address);
                    }

                    run.setText(text, 0); // নতুন টেক্সট সেট করা
                }
            }
        }

        // পরিবর্তিত ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("document_with_complex_data.docx")) {
            document.write(out);
        }
    }
}

এখানে, একাধিক placeholder (যেমন {{name}}, {{date}}, এবং {{address}}) ডাইনামিকভাবে প্রতিস্থাপন করা হয়েছে।


৬. সারাংশ

Placeholder Text এবং Data Binding ব্যবহার করে আপনি একটি Word ডকুমেন্টে ডাইনামিক ডেটা সন্নিবেশ করতে পারেন এবং বিভিন্ন placeholders বা template fields প্রতিস্থাপন করতে পারেন। Apache POI লাইব্রেরি এই কাজটি খুব সহজে করতে সহায়তা করে। আপনি যে কোনও placeholder টেক্সট (যেমন {{name}}, {{address}}) ডাইনামিক ডেটা দিয়ে প্রতিস্থাপন করে একটি টেমপ্লেট তৈরি করতে পারেন এবং সেই টেমপ্লেটে ডাইনামিক ডেটা ইন্সার্ট করতে পারেন।

এই ধরনের টেমপ্লেট ব্যবহারের ফলে আপনি সহজে প্রমোশনাল ম্যাটেরিয়াল, রিপোর্ট বা চুক্তিপত্র তৈরি করতে পারেন যেখানে কিছু তথ্য ডাইনামিকভাবে ইনপুট হয়ে থাকে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion